Skip to main content

Form Nodes

Node

所有实际的表单 Node 都继承于 Node

API

属性/方法类型描述
nodePath readonlystringNode 的路径。
valueany返回或者设置节点的值。如果字段是系统保护字段,则设置该值将会引发错误。
getField(path)参数:path: string返回:FieldNode在父节点中 返回 path 对应的节点引用。
getSubGrid(path)参数:path: string返回:SunGriddNode在父节点中 返回 path 对应的子表引用。

FormNode

表单根节点引用对象。

API

属性/方法类型描述
id readonlystring返回表单数据的 id 值。
name readonlystring返回表单的名称,也就是表单的 ApiName
title readonlystring返回表单的显示标签文本。
isSupportChangeBill readonlyboolean表单是否支持变更(不包含业务自定义的定制变更单)
isChangeBill readonlyboolean是否是变更单
findUnique(path, params)参数:path: stringparams: FindParams返回:Object根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果只有唯一的一条记录,则返回查询结果。否则返回空。
findOne(path, params)参数:path: stringparams: FindParams返回:Object根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果中有记录,则返回查询结果的第一行数据。否则返回空。
findMany(path, params)参数:path: stringparams: FindParams返回:Object[]根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。
addDependentValidator(path,validator, dependencies)参数:
path: string
validator: (field: IFieldNodeWrapper) => string
dependencies: String[]
添加具有依赖关系的校验器, 如A字段变化要对B字段进行校验
setForceWriteFields(fields: Array<string>)参数:fields: Array<string> 配置强制可编辑字段,如: ['detailItems.srcObject', ...] 设置不允许通过api赋值的字段为强制可编辑,危险操作。
thisApp.onSave = async (ctx) => {
const form = ctx.getFormContext().form;
const { data } = ctx.getCurrentContext();
data.isManualCode = true;
const code = await form.getEntitySerialNumber('product', 'next');
data.code = code;

};

FieldNode

表单字段节点引用对象。

API

属性/方法类型描述
name readonlystring返回字段的名称,也就是字段的 ApiName
labelstring返回或者设置字段的显示标签文本。
disabledboolean返回或者设置字段的可用状态。如果字段是系统保护字段并且处于不可用状态,则设置该值为 false 将会引发错误。
visibleboolean返回或者设置字段的可见状态。
requiredboolean返回或者设置字段的必填状态。
isValid readonlyboolean返回字段的校验正确性。
setIsValid(valid, [message])参数:valid: booleanmessage: string返回:无设置字段的校验正确性。field.setIsValid(false, 'Error!')
findUnique(params)参数:params: FindParams返回:Object根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果只有唯一的一条记录,则返回查询结果。否则返回空。
findOne(params)参数:params: FindParams返回:Object根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果中有记录,则返回查询结果的第一行数据。否则返回空。
findMany(params)参数:params: FindParams返回:Object[]根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。
selectUnique(params)参数:params: FindParams返回:Object该方法和 findUnique类似,但是不同之处,如果查询结果有唯一的数据,则会同时给当前字段的 value 赋值。
selectOne(params)参数:params: FindParams返回:Object该方法和 findOne类似,但是不同之处,如果查询结果有数据,则会同时给当前字段的 value 赋值。
addFilter(where)参数:where: FindWhereParams返回:无给字段增加额外的过滤条件。增加的条件会和产品对该字段内置的查询条件以 AND 关系组合成新的查询条件。
removeFilter()去掉通过 addFilter的过滤条件。

非常重要!

如果 FieldNode 是一个引用关联字段,比如客户、供应商、人员、部门等这种类型的字段。那么我们要给这种字段通过 Client API 赋值的时候,不能直接给字段的 value 设置一个 id。而必须要通过 selectUnique 或者 selectOne 来查找数据并且赋值

SubGridNode

继承自 FieldNode

API

属性/方法类型描述
rowCount readonlynumber返回子表的行数量。
rows readonlyRowNode[]返回子表所有行节点。
appendRow(initialize: bool)
参数: initialize : bool, 可选, 返回:RowNode给子表添加一个空白行,并且返回新增的行引用。initalize为true的话,加行时同时初始化, web端因为默认有空白行, 追加行为是在最后一行前追加, h5直接在最后追加行
appendRows(rows: Array<any>)
参数: rows : Array<any>, 行数据集合给子表添加一批行
insertRow(index)参数:index: number返回:RowNode给子表在 index 位置插入一个空白行,并且返回新增的行引用。
insertRows(index:number, rows: Array<any>)参数:index: number, rows : Array<any>行数据集合给子表在 index 位置插入一批数据行。
removeRowAt(index)参数:index: number删除子表中 index 位置的行。
removeAllRows()清空子表的所有行。
getRowAt(index)参数:index: number返回:RowNode返回子表中 index 位置的行。
setColumnVisible(fieldName:string或Array<string>, isVisible:bool) 参数:fieldName 字段名字段名集合, isVisible: 显示或隐藏动态设置列显示/隐藏
isSupportChangeBillboolean是否支持变更

RowNode

继承自 `FieldNode

API

属性/方法类型描述
rowIndex readonlynumber返回子表行位置(从 0 开始)。
gridName readonlystring返回子表名称。
editFlag readonlystring返回子表行的状态。'add' \
isInitialized readonlybool行是否初始化。
initialize() 初始化行, 添加的空行是未初始化的情况下不会触发规则计算,这时需要主动调用行初始化方法
caution

node节点获取value的值,取value下自定义属性时,不再支持原始的name,请使用apiName(脚本编辑界面,右侧树形列表上看到的名字)。

由于智元前期未支持apiName, 这个时候建的自定字段看到的名字是一串随机码,不方便记忆和使用, 提供了通过apiName进行开发,apiName就是建字段时文本框输入的 字段名。